#ifndef __SW_3D_POINT_LIGHT_H__
#define __SW_3D_POINT_LIGHT_H__

#include "3D/lightSources/sweety_3D_Light.h"
#include "3D/lightSources/sweety_3D_LightTool.h"

namespace SW
{	
	class PointLight : public Light
	{
	public:
		PointLight(MainProgramObj* shader = nullptr);
		virtual ~PointLight();

		void SetPosition(const vec3& pos, const char* shaderName = "");
		vec3 GetPosition() const;

		void SetAmbient(const vec3& ambient, const char* shaderName = "");
		vec3 GetAmbient() const;

		void SetDiffuse(const vec3& diffuse, const char* shaderName = "");
		vec3 GetDiffuse() const;

		void SetSpecular(const vec3& specular, const char* shaderName = "");
		vec3 GetSpecular() const;

		void SetConstant(float constant, const char* shaderName = "");
		float GetConstant() const;

		void SetLinear(float linear, const char* shaderName = "");
		float GetLinear() const;

		void SetQuadratic(float quadratic, const char* shaderName = "");
		float GetQuadratic() const;


	private:
		vec3			m_Position;
		vec3			m_Ambient;
		vec3			m_Diffuse;
		vec3			m_Specular;

		float			m_Constant;
		float			m_Linear;
		float			m_Quadratic;

		MainProgramObj* m_Shader{ nullptr };

	};
}


#endif